Flash memory is a huge industry that constantly seeks better techniques for higher capacity and efficient I/O. There are several manufacturers (Toshiba, Samsung and others), and several companies that provide technology for these devices—Sandisk, Spansion, Samsung, Toshiba and others. The market is estimated by Billions of dollars per year.
Flash memories technology have faced the introduction of Multi-level cells (MLC). An MLC is a memory element capable of storing more than a single bit of information. MLC NAND flash is a flash memory technology using multiple levels per cell to allow more bits to be stored as opposed to SLC NAND flash technologies, which uses a single level per cell. This reduces the amount of margin separating the states and results in the possibility of more errors, which led the Flash memory industry toward more complex and expensive controllers.
The currently available technologies and products use standard error correcting methods (Reed-Solomon, TCM and more recently LDPC, etc.) together with repetitive memory access, but those solutions are complex, require a substantial amount of processing, and can be significantly slower due to the need for repetitive access.